function gplot(x, y, par, how, symstart)
% gplot generates a graph of the data in x vs y, but sets
% the line types to all be the same (solid) and the symbols to be used
% 
% first we generate a set of tables for the symbol lists
% symlist is the list of symbols in the Journal of Physiology order
% (J. Physiol. seems to be one of the last journals to specify the order)
% symlist is used to set the "marker" property
if(nargin < 4)
   how = 'linear'
end
if(nargin < 5)
   symstart = 1
end

symlist = strvcat('o', 's', '^', 'o', 's', '^', 'd', 'd', 'p', 'p', 'v', 'v');
% fill list: the symbols are either filled or transparent. Fills are always black
% Fill list is used to set the "markerfacecolor" argument.
filllist = strvcat('none', 'none', 'none', 'k', 'k', 'k', 'none', 'k', ...
   'none', 'k', 'none', 'k');
nsym = size(symlist);
nfill = size(filllist);if(nsym(1) ~= nfill(1))
   disp ('Error in fill and symbol lists in gplot()')
   return;
end
lx = size(x);
ly = size(y);
if(lx(2) ~= ly(2))
   disp('Unequal number of values in the two arrays to gplot()')
   return;
end
hold on
h = gca;
set(h, 'Fontsize', 6)

for i=1:lx(2)
   k = mod(i + symstart - 1, nsym);
   if(k == 0) k = 12;
   end
   sym = sprintf('-%1ck', symlist(k(1)));
   switch (how)
   case 'semilogx'
      disp('slx')
      semilogx(x(:, i), y(:, i), sym, 'markerfacecolor', filllist(k(1)), 'Markersize', 3);
   case 'semilogy'
      disp('sly')
      semilogy(x(:, i), y(:, i), sym, 'markerfacecolor', filllist(k(1)), 'Markersize', 3);
   case 'loglog'
      disp('ll')
      loglog(x(:,i), y(:,i), sym, 'markerfacecolor', filllist(k(1)), 'Markersize', 3);
      h = gca;
      set(h, 'Xscale', 'log', 'Yscale', 'log');
      set(h, 'Ylim', [5, 50]);
      set(h, 'Ytickmode', 'manual');
      set(h, 'Ytick', [5, 6, 7, 8, 9, 10, 15, 20, 30, 40, 50, 60]);
   case 'linear'
      disp('lin')
      plot(x(:, i), y(:, i), sym, 'markerfacecolor', filllist(k(1)), 'Markersize', 3);
   end
end



